草庐IT

Delphi XE 构建事件.. 全局?

全部标签

javascript - 我是如何丢失 JavaScript 内置对象和所有全局变量的?

我正在处理一个需要在大型浏览器(包括IE11)中运行的Umbraco站点,我遇到了一个只能在IE11上复制的奇怪问题。在某些时候,TinyMCE插件的脚本会尝试执行此代码(大约调用四次)以响应blur事件:functionclassTest(cls){returnnewRegExp("(^|\\s)"+cls+"(?:$|\\s)\\s*");}并且在尝试创建RegExp对象时抛出“对象不支持此操作”异常。cls已定义并且具有我期望的值。在未处理的异常上暂停(使用VisualStudio调试器)时,我做了一些检查。原来RegExp是undefined。我发现这非常很奇怪。更多的调查显示

javascript - 在 ES Lint 中为 React Native 应用程序将 WebSocket 定义为全局变量

我收到以下eslint错误:42:21error'WebSocket'isnotdefinedno-undef您不能从react-native导入WebSocket,因为它是全局的,但是当我将WebSocket作为全局变量添加到我的.eslintrc.yml时,它不会改变结果错误:globals:WebSocket:true如何在ESLint中为ReactNative应用将WebSocket定义为全局?这可以修复吗?目前我的.eslintrc看起来像这样:env:browser:falsees6:truecommonjs:truenode:trueextends:'airbnb'par

Javascript 事件循环说明

我一直看到对“Javascript事件循环”(即:浏览器JS运行时事件循环)的解释对我来说似乎不太合理,我希望有人能提供一些权威的解释。我的基本假设是,JS事件循环就像我们几十年来一直在UI框架中使用的事件循环,类似于://[...someinitialization...]//TheEventLoopwhile(true){if(!EventQueue.isEmpty()){event=EventQueue.pop_oldest_item();event.callback(event[orsomeotherkindofargs]);}//[...defertoothernon-JSt

javascript - webpack 为什么要构建 global.js?

我开始使用webpack,在我的第一个构建中,我注意到输出包含一个默认文件(索引1):build.js222kB0[emitted]main[1](webpack)/buildin/global.js509bytes{0}[built][2]./source/scripts/main.js105bytes{0}[built]+4hiddenmodules为什么包含这个文件?我没有任何依赖项需要接近我的build.js文件中出现的代码量。我预计输出中可能有10行代码,但我有8000行。我还注意到其他一些项目没有在输出中列出此文件。这是绝对必要的吗?我什至无法在文档中找到它。作为引用,我的

javascript - 添加事件监听器后函数运行次数过多

我构建了一个简单的演示(https://codepen.io/anon/pen/VgKQoq),展示了单击按钮时创建的元素和对象:它创建了一个元素,然后将该元素的对象插入“对象”数组。当点击移除按钮时,元素和对象被成功地使用ids移除。但是,问题在于每次移除一个元素时,remove函数有时会根据点击的是哪个元素运行太多次,我也不知道为什么。在演示中,打开javascript控制台,创建例如4个元素,然后通过单击删除删除第三个元素,您将看到发生了什么。有人知道为什么会这样吗?我认为这可能是因为事件监听器被一次又一次地添加到相同的元素中,但是在删除时它似乎不起作用。如有任何解释和最佳做法,

javascript - 套接字多次发出事件

我正在开发用于聊天的套接字。这是我在nodejs文件中的套接字代码,运行良好。外部套接字io.emit工作正常,并将消息发送给连接到该conversationId的所有用户。但是我用来通知用户的socket.broadcast.emit(当用户使用该应用程序时)会多次发出(socket.broadcast.emit)事件.为什么会这样?我是否完全错过了套接字方法。socket.on('sendMessage',async(action2)=>{try{action2.author=socket.decoded.idaction2.readBy=[socket.decoded.id]ac

javascript - 如何在不弄乱全局命名空间的情况下在其他站点中注入(inject) Javascript(包括 Prototype.js)?

我目前正在做一个项目,该项目是一个使用Prototype库的大型站点,并且已经有大量的Javascript代码。我们现在正在研究一段代码,它将被“注入(inject)”到其他人的网站中(想象人们在他们的网站中添加标签),然后运行我们的代码并添加一堆DOM元素和他们网站的功能。这将有新的代码片段,并且还将重用我们在主站点上使用的大量代码。我遇到的问题是,仅仅添加一个将在人们的页面中包含Prototype的当然不是很酷。如果我们在已经使用任何框架的页面中这样做,我们肯定会搞砸一切。jQuery为我们提供了“重命名”$对象的选项,因此它可以很好地处理这种情况,但显然我们没有使用jQuery,

javascript - 简单的 Javascript 来模仿在事件处理程序中使用它的 jQuery 行为

这不是关于jQuery的问题,而是关于jQuery如何实现这种行为的问题。在jQuery中你可以这样做:$('#some_link_id').click(function(){alert(this.tagName);//displays'A'})有人可以笼统地解释一下(不需要您编写代码)他们如何将事件的调用者html元素(此特定示例中的链接)传递到this关键字?我显然试图在jQuery代码中查找1st,但我无法理解一行。谢谢!更新:根据Anurag的回答,我决定此时发布一些代码,因为它似乎比我想象的更容易编码:functionAddEvent(html_element,event_n

javascript - 局部变量的访问时间比全局变量长 7 倍?

我试图对“缓存”math.floor的增益/损失进行基准测试,希望我可以更快地进行调用。这是测试:window.onload=function(){varstartTime=newDate().getTime();vark=0;for(vari=0;iMath.floor:msvarmathfloor:mswindow.mathfloor:ms我的测试结果:[Chromium5.0.308.0]:Math.floor:49msvarmathfloor:271mswindow.mathfloor:40ms[IE8.0.6001.18702]Math.floor:703msvarmathf

javascript - Ctrl 或 Shift 对每个浏览器中 anchor 标记的 `onclick` 事件的影响

我最近发现当按下Control或Shift键时,不同的浏览器会以不同的方式处理onclick事件。他们在通过单击鼠标中键跟踪链接的行为上存在相似的分歧。通过以下链接:gotoexample.comOnclick浏览器支持表MouseKeyboardChromeFirefoxSafariOperaIE5.5IE6IE7IE8IE9LeftNoneyesyesyesyesyesyesyesyesyesLeftCtrlyesyesyesyes?yesnono?LeftShiftyesyesyesyes?yesyesyes?MiddleNoneyesnoyesno?N/Anono?有人可以帮我